﻿using System;
using CommonLibrary.Exceptions;
using ConnectionManager.ConnectionProcesors.PS3;

namespace ConnectionManager.ConnectionProcesors
{
    public enum ProcesorType
    {
        PS3Procesor,
        Xbox360
    }

    public static class ConnectionProcesorFactory
    {
        public static IConnectionProcesor GetProcesor(ProcesorType type, string gameName)
        {
            switch (type)
            {
                case ProcesorType.PS3Procesor:
                    return GetPS3Procesor(gameName);
                    break;
                case ProcesorType.Xbox360:
                    return Get360Procesor(gameName);
                    break;
            }
            throw new SimpleSmartException(type.ToString() + "is not a suported platform");
        }

        private static IConnectionProcesor GetPS3Procesor(string gameName)
        {
            switch (gameName)
            {
                case "Killzone3": return new Killzone3Procesor();
                default: return new DefaultPS3Procesor();
            }
        }

        private static IConnectionProcesor Get360Procesor(string gameName)
        {
            throw new NotImplementedException("Xbox 360 is not supported");
        }
    }
}
